package com.hengpeng.itfin.service;

import java.util.List;

import com.hengpeng.common.exception.ServiceResult;
import com.hengpeng.itfinbase.persist.Payment;
import com.hengpeng.itfinbase.persist.Payment.PayStatus;
import com.hengpeng.itfinbase.persist.PaymentProvider;
import com.hengpeng.itfinbase.persist.PaymentProvider.PaymentProviderType;

/**
 * <pre>
 * 付款服务接口
 * 处理用户充值，提款，返奖
 * </pre>
 * @author zhaojitao
 * @version 1.0, 2010-9-19
 */
public interface PayService
{

	/**
	 * <pre>
	 * 处理充值结果
	 * </pre>
	 * @param providerId 支付商ID
	 * @param payOrderId 订单号
	 * @param payState 支付状态
	 * @param message 交易状态信息
	 */
	public ServiceResult<Payment> dealPayResult(String providerId, String payOrderId, Long money, PayStatus payState,
			String message);

	/**
	 * <pre>
	 * 获得自动提款的支付商列表
	 * </pre>
	 * @return
	 */
	public List<PaymentProvider> findProviderAutoPay();
	
	/**
	 * <pre>
	 * 通过支付提供商编号来查找支付提供商
	 * </pre>
	 * @return
	 */
	public PaymentProvider findProviderById(String id);

	/**
	 * <pre>
	 * 通过支付类型获取支付商列表
	 * </pre>
	 * @return
	 */
	public List<PaymentProvider> listProviderByType(PaymentProviderType type);

}
